package com.guxing.authConfig;

import lombok.Data;
import lombok.EqualsAndHashCode;

@EqualsAndHashCode(callSuper = true)
@Data
public class PasswordPolicy extends LocalPasswordPolicy{
    /**
     * 密码允许的字符类型组合,目前支持的字母类型有：1=数字，2=小写字母a-z,4=大写字母A-Z,8=特殊字符，特殊字符的定义由SpecialCharacters属性指定
     */
    private int characterType = 15;

    /**
     * 特殊字符的定义，因为不同国家编码(代码页)原因，最好使用ASCII表中的编码，因为不管什么编码（GB2312,UTF8等），其低位的128位都是一样的，组件的默认特殊字符定义为：!@#$%^&*()；
     */
    private String specialCharacters = "!@#$%^&*()";

    /**
     * 盐值的长度，密码会被哈希计算后再存储，而哈希算法，如SHA1,SHA256,MD5等均是不可逆的，默认使用的哈希公式=SHA256(明文密码+Salt)
     */
    private int saltLength = 8;

    /**
     * 密码能否等于LoginName
     */
    private boolean equalsToLoginName = true;
}
